// 剑指 Offer 65. 不用加减乘除做加法
// 写一个函数，求两个整数之和，要求在函数体内不得使用 “+”、“-”、“*”、“/” 四则运算符号。

// 示例:

// 输入: a = 1, b = 1
// 输出: 2

// 提示：

// a, b 均可能是负数或 0
// 结果不会溢出 32 位整数

func add(a int, b int) int {
	carry := 0
	for b != 0 { //相当于进位不等于0
		carry = (a & b) << 1 //算出进位
		a ^= b               //算出不带进位的和
		b = carry            //更新进位
	}
	return a
}